package main.h2;

import java.sql.*;

/**
 * Created by zhtt on 2016/10/17.
 */
public class H2Demo01 {
    public void runInsertDelete(){
        Connection conn=null;
        Statement stmt=null;
        try{
            String sourceURL="jdbc:h2:~/test";//H2DB mem mode
            String user="sa";
            String key="";
            try{
                Class.forName("org.h2.Driver");//HSQLDB Driver
            }catch(Exception e){
                e.printStackTrace();
            }
            conn=DriverManager.getConnection(sourceURL,user,key);//把驱动放入连接
            stmt=conn.createStatement();
            //创建一个 Statement 对象来将 SQL 语句发送到<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库" target='_blank' style='color:#df3434; font-weight:bold;'>数据库</a>。
            //stmt.executeUpdate("DELETE FROM mytable WHERE name=/'NO.2/'");
            //执行方法找到一个与 methodName 属性同名的方法，并在目标上调用该方法。
            stmt.execute("DROP TABLE IF EXISTS idtable;");
            stmt.execute("CREATE TABLE idtable(id INT,name VARCHAR(100));");
            stmt.execute("INSERT INTO idtable VALUES(1,'MuSoft1')");
            stmt.execute("INSERT INTO idtable VALUES(2,'StevenStander1')");

        }catch(SQLException sqle){
            System.out.println("SQL ERROR!");
        }finally {
            if(conn!=null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }
    public void query(String SQL){
        Connection conn=null;
        Statement stmt=null;
        try{
            String sourceURL="jdbc:h2:tcp://localhost/mem:test";
            sourceURL="jdbc:h2:~/test";//H2DB mem mode
            String user="sa";
            String key="";
            try{
                Class.forName("org.h2.Driver");
            }catch(Exception e){
                e.printStackTrace();
            }
            conn=DriverManager.getConnection(sourceURL,user,key);//把驱动放入连接
            stmt=conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
            ResultSet rset=stmt.executeQuery(SQL);//执行方法找到一个与 methodName 属性同名的方法，并在目标上调用该方法。
            while(rset.next()){
                System.out.println(rset.getInt("id")+"  "+rset.getString("name"));
            }
            rset.close();
        }catch(SQLException sqle){
            System.err.println(sqle);
        }finally {
            if(conn!=null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    public static void main(String args[]){
        H2Demo01 mt=new H2Demo01();
        //mt.runInsertDelete();
        mt.query("SELECT * FROM idtable;");
    }

}
